The present invention relates to computer generated imagery. More specifically, the present invention relates to methods and apparatus for interactive specification of illumination parameters.
Throughout the years, movie makers have often tried to tell stories involving make-believe creatures, far away places, and fantastic things. To do so, they have often relied on animation techniques to bring the make-believe to “life.” One major path in animations has included traditional drawing-based animation techniques.
Drawing-based animation techniques were refined in the twentieth century, by movie makers such as Walt Disney and used in movies such as “Snow White and the Seven Dwarfs” (1937) and “Fantasia” (1940). These animation techniques typically required artists to hand-draw (or paint) animated images onto transparent media such as cels. After painting, each cel would then be captured or recorded onto film as one or more frames in a movie.
With the widespread availability of computers in the later part of the twentieth century, animators began to rely upon computers to assist in the animation process. This included using computers to facilitate drawing-based animation, for example, by painting images, by generating in-between images (“tweening”), and the like. Walt Disney's first full-length movie combining computer generated imagery (e.g. animation) and hand drawn animation was “Beauty and The Beast” (1991). Walt Disney's first full-length movie that included only computer generated images (CGI) was “Chicken Little” (2005).
In the CGI field, the term “rendering” generally refers to the process of converting a mathematical description of a scene into one or more images. Typical types of input data (scene descriptor) for the rendering process includes a description of geometry of one or more objects in a scene, description of surface properties (shading properties) of objects in a scene, description of camera positions, and description of illumination sources. Currently, the input data may be on the order of gigabytes. The rendering process includes modeling the interaction of light from the illumination sources with the objects in the scene to determine what the scene should look like from the camera's point of view.
For “film-quality” (high resolution) computer rendering, images may take hours to render even using state-of-the-art CPUs. Using traditional techniques, the input data is retrieved from a scene descriptor file, or the like, and loaded into memory. Next, a rendering engine, or the like, processes the input data to generate the output image overnight. If the user is unsatisfied with the parameters of the output image, the input data is modified, and the rendering process repeated. Because the rendering process is, in practice, an iterative process, users often spend a lot of time waiting to see if the changes in input they make result in acceptable visual images.
In light of the above, what is desired are improved methods and apparatus for accelerating the visualization process.